#include "RsGisLibCMDSegmentation.h"

RsGisLibCMDSegmentation::RsGisLibCMDSegmentation(RsgisPortal* Port)
{
	ClientPort = Port;

	rsgisSegClump = NULL;
	rsgisSegRMSmallClumpStepwise = NULL;
	rsgisSegLabPixFromClusCen = NULL;
	rsgisSegElimiSinglePixels = NULL;
	rsgisSegRelabelClumps = NULL;
	rsgisSegMeanImage = NULL;
	rsgisSegUnionofClumps = NULL;
	rsgisSegMergeSegTiles = NULL;
	rsgisSegFindTileBordMask = NULL;
	rsgisSegMergeClumpImg = NULL;
	rsgisSegRMSmallClumps = NULL;
	rsgisSegRandColourClumps = NULL;
	rsgisSegGenReguGrid = NULL;
	rsgisSegIncluCluReg = NULL;
	rsgisSegMerSegtoNeigh = NULL;
	rsgisSegDropSeleClumps = NULL;
	rsgisSegMerClumEquiVal = NULL;
}

RsGisLibCMDSegmentation::~RsGisLibCMDSegmentation()
{
	if (rsgisSegClump)
		delete(rsgisSegClump);
	if (rsgisSegRMSmallClumpStepwise)
		delete(rsgisSegRMSmallClumpStepwise);
	if (rsgisSegLabPixFromClusCen)
		delete(rsgisSegLabPixFromClusCen);
	if (rsgisSegElimiSinglePixels)
		delete(rsgisSegElimiSinglePixels);
	if (rsgisSegRelabelClumps)
		delete(rsgisSegRelabelClumps);
	if (rsgisSegMeanImage)
		delete(rsgisSegMeanImage);
	if (rsgisSegUnionofClumps)
		delete(rsgisSegUnionofClumps);
	if (rsgisSegMergeSegTiles)
		delete(rsgisSegMergeSegTiles);
	if (rsgisSegFindTileBordMask)
		delete(rsgisSegFindTileBordMask);
	if (rsgisSegMergeClumpImg)
		delete(rsgisSegMergeClumpImg);
	if (rsgisSegRMSmallClumps)
		delete(rsgisSegRMSmallClumps);
	if (rsgisSegRandColourClumps)
		delete(rsgisSegRandColourClumps);
	if (rsgisSegGenReguGrid)
		delete(rsgisSegGenReguGrid);
	if (rsgisSegIncluCluReg)
		delete(rsgisSegIncluCluReg);
	if (rsgisSegMerSegtoNeigh)
		delete(rsgisSegMerSegtoNeigh);
	if (rsgisSegDropSeleClumps)
		delete(rsgisSegDropSeleClumps);
	if (rsgisSegMerClumEquiVal)
		delete(rsgisSegMerClumEquiVal);

	rsgisSegClump = NULL;
	rsgisSegRMSmallClumpStepwise = NULL;
	rsgisSegLabPixFromClusCen = NULL;
	rsgisSegElimiSinglePixels = NULL;
	rsgisSegRelabelClumps = NULL;
	rsgisSegMeanImage = NULL;
	rsgisSegUnionofClumps = NULL;
	rsgisSegMergeSegTiles = NULL;
	rsgisSegFindTileBordMask = NULL;
	rsgisSegMergeClumpImg = NULL;
	rsgisSegRMSmallClumps = NULL;
	rsgisSegRandColourClumps = NULL;
	rsgisSegGenReguGrid = NULL;
	rsgisSegIncluCluReg = NULL;
	rsgisSegMerSegtoNeigh = NULL;
	rsgisSegDropSeleClumps = NULL;
	rsgisSegMerClumEquiVal = NULL;
}

void RsGisLibCMDSegmentation::SegClump()
{
	rsgisSegClump = new RsGisLibSegClump(ClientPort, NULL);
	rsgisSegClump->show();
}

void RsGisLibCMDSegmentation::SegRMSmallClumpStepwise()
{
	rsgisSegRMSmallClumpStepwise = new RsGisLibSegRMSmallClumpStepwise(ClientPort, NULL);
	rsgisSegRMSmallClumpStepwise->show();
}

void RsGisLibCMDSegmentation::SegLabPixFromClusCen()
{
	rsgisSegLabPixFromClusCen = new RsGisLibSegLabPixFromClusCen(ClientPort, NULL);
	rsgisSegLabPixFromClusCen->show();
}

void RsGisLibCMDSegmentation::SegElimiSinglePixels()
{
	rsgisSegElimiSinglePixels = new RsGisLibSegElimiSinglePixels(ClientPort, NULL);
	rsgisSegElimiSinglePixels->show();
}

void RsGisLibCMDSegmentation::SegRelabelClumps()
{
	rsgisSegRelabelClumps = new RsGisLibSegRelabelClumps(ClientPort, NULL);
	rsgisSegRelabelClumps->show();
}

void RsGisLibCMDSegmentation::SegMeanImage()
{
	rsgisSegMeanImage = new RsGisLibSegMeanImage(ClientPort, NULL);
	rsgisSegMeanImage->show();
}

void RsGisLibCMDSegmentation::SegUnionofClumps()
{
	rsgisSegUnionofClumps = new RsGisLibSegUnionofClumps(ClientPort, NULL);
	rsgisSegUnionofClumps->show();
}

void RsGisLibCMDSegmentation::SegMergeSegTiles()
{
	rsgisSegMergeSegTiles = new RsGisLibSegMergeSegTiles(ClientPort, NULL);
	rsgisSegMergeSegTiles->show();
}

void RsGisLibCMDSegmentation::SegFindTileBordMask()
{
	rsgisSegFindTileBordMask = new RsGisLibSegFindTileBordMask(ClientPort, NULL);
	rsgisSegFindTileBordMask->show();
}

void RsGisLibCMDSegmentation::SegMergeClumpImg()
{
	rsgisSegMergeClumpImg = new RsGisLibSegMergeClumpImg(ClientPort, NULL);
	rsgisSegMergeClumpImg->show();
}

void RsGisLibCMDSegmentation::SegRMSmallClumps()
{
	rsgisSegRMSmallClumps = new RsGisLibSegRMSmallClumps(ClientPort, NULL);
	rsgisSegRMSmallClumps->show();
}

void RsGisLibCMDSegmentation::SegRandColourClumps()
{
	rsgisSegRandColourClumps = new RsGisLibSegRandColourClumps(ClientPort, NULL);
	rsgisSegRandColourClumps->show();
}

void RsGisLibCMDSegmentation::SegGenReguGrid()
{
	rsgisSegGenReguGrid = new RsGisLibSegGenReguGrid(ClientPort, NULL);
	rsgisSegGenReguGrid->show();
}

void RsGisLibCMDSegmentation::SegIncluCluReg()
{
	rsgisSegIncluCluReg = new RsGisLibSegIncluCluReg(ClientPort, NULL);
	rsgisSegIncluCluReg->show();
}

void RsGisLibCMDSegmentation::SegMerSegtoNeigh()
{
	rsgisSegMerSegtoNeigh = new RsGisLibSegMerSegtoNeigh(ClientPort, NULL);
	rsgisSegMerSegtoNeigh->show();
}

void RsGisLibCMDSegmentation::SegDropSeleClumps()
{
	rsgisSegDropSeleClumps = new RsGisLibSegDropSeleClumps(ClientPort, NULL);
	rsgisSegDropSeleClumps->show();
}

void RsGisLibCMDSegmentation::SegMerClumEquiVal()
{
	rsgisSegMerClumEquiVal = new RsGisLibSegMerClumEquiVal(ClientPort, NULL);
	rsgisSegMerClumEquiVal->show();
}